package com.kc.business.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;

/**
 * FileName: KcShareProfitConfig
 * Author:   TP
 * Date:     2020-11-03 16:54
 * Description: 分润配置表（包含分账、分销）
 */
@Data
@Table(name = "kc_share_profit_config")
public class KcShareProfitConfig {

    @Id
    private Integer id;

    /** 产品类别名称 */
    @NotBlank(message = "产品类别名称不能为空")
    @Size(min = 1, max = 32, message = "产品类别名称不能超过32个字符")
    private String productTypeName;

    /** 产品类别标识 */
    @NotBlank(message = "产品类别标识不能为空")
    @Size(min = 1, max = 64, message = "产品类别标识不能超过64个字符")
    private String productTypeKey;

    /** 版本号 */
    private int version;

    /** 分润类型（1：分账 2：分销 3：分账+分销） */
    @NotNull(message = "分润类型不能为空")
    private Integer shareProfitType;

    /** 文链联盟分账占比 */
    // @NotNull(message = "文链联盟分账占比不能为空")
    private Double percentBillCultureUnion;

    /** 景区分账占比 */
    // @NotNull(message = "景区分账占比不能为空")
    private Double percentBillScenic;

    /** 卡戳分账占比 */
    // @NotNull(message = "卡戳分账占比不能为空")
    private Double percentBillKachuo;

    /** 商户分账占比 */
    // @NotNull(message = "商户分账占比不能为空")
    private Double percentBillBusiness;

    /** 一级分销占比 */
    // @NotNull(message = "一级分销占比不能为空")
    private Double percentDistributionLevelOne;

    /** 二级分销占比 */
    // @NotNull(message = "二级分销占比不能为空")
    private Double percentDistributionLevelTwo;

    /** 红包 */
    // @NotNull(message = "红包占比不能为空")
    private Double percentRedPacket;

    /** 状态（0:禁用 1:启用）*/
    @NotNull(message = "请指定分润配置状态（0:禁用 1:启用）")
    private Integer status;

    /** 审核状态（0:审核中 1:审核通过 2：审核拒绝）*/
    private Integer auditStatus;

    /** 审核人 */
    private String auditBy;

    /** 审核拒绝原因 */
    private String rejectReason;

    /** 是否删除（0:否 1:是）*/
    private Integer isDeleted;

    /** 创建者 */
    private String createBy;

    /** 创建时间 */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /** 修改者 */
    private String updateBy;

    /** 修改时间 */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

}
